1. Technical Field
The invention is related to a system for media compression, and in particular, to an efficient scheme to multiplex multiple embedded coded bitstreams, to improve the compression efficiency, and to reduce the granularity of access for an embedded compressed bitstream.
2. Related Art
Embedded coding has the attractive property that a lower rate compressed bitstream is embedded, usually as a prefix, in a higher rate compressed bitstream. The higher rate compressed bitstream can thus be converted to a lower rate bitstream through simply truncation. The embedded coding thus enables the compressed bitstream to be manipulated quickly after the bitstream has been generated. There are a number of conventional schemes for embedded coding of bitstreams. Embedded coding is usually achieved by splitting transform coefficients of a signal into an array of bits, first encoding the more significant bits of all coefficients, and then gradually encoding the less significant bits for producing a compressed bitstream version of the input signal. Using such a coding order, if the resulting compressed bitstream is truncated, then at least a portion of all encoded coefficients will still be available for decoding. Consequently, the compressed bitstream can therefore be truncated at any point with a graceful tradeoff between the distortion and the coding rate.
One conventional scheme for embedded image coding is the well known JPEG 2000 image compression standard, which takes embedded coding, and thus the capability of manipulating a compressed bitstream to a whole new level. This embedded coding standard not only offers good compression performance, but also provides incredible flexibility. For example, the compressed bitstream of JPEG 2000 can be scaled in different bitrate, resolution, and spatial regions of interest (ROI). As is known to those skilled in the art, this flexibility is the result of applying embedded media coding to coefficient blocks, and then assembling the resultant bitstream, which provides the core architecture of the JPEG 2000 image compression standard.
In operation, JPEG 2000 compression first divides an image into a number of code blocks, where each code block is a rectangular block of coefficients in a wavelet subband. Every code block is then independently encoded by an embedded coder into a “code block bitstream,” each of which has the embedding property that it can be truncated at arbitrary points. The embedded code block bitstreams are then multiplexed together to form the combined bitstream of JPEG 2000. Further, because the JPEG 2000 compressed bitstream is a collection of bitstream pieces of the code blocks, it can be flexibly reshaped in multiple aspects. Such flexibility of the compressed bitstream has important applications, such as, for example, internet browsing of images, where a server can quickly reshape a compressed image to a desired quality, resolution, and ROI, as requested by a client device.
The price of the incredible flexibility of the JPEG 2000 standard is the need to include a “demultiplexing aide” as overhead in the compressed bitstream to allow for decoding of the compressed signal. In particular, in order to decode a JPEG 2000 compressed signal, a demultiplexing aide, such as the length and the number of coding passes of the multiplexed bitstream pieces, is inserted into the compressed bitstream so that it can be demultiplexed and decoded. This demultiplexing aide can be considered as an overhead or a penalty paid for the bitstream flexibility. Further, as the bitstream pieces become smaller, the overhead of the demultiplexing aide increases in proportion to the final bitstream.
One way to reduce the overhead of the demultiplexing aide in proportion to the information encoded in the bitstream is to use larger code blocks and/or fewer layers of bitrate scalability. Unfortunately, this tradeoff results in poor granularity of access for the decoded signal. Further, this directly contradicts one of the main benefits of JPEG 2000, namely, bitstream flexibility. Further, since the code block resides in the wavelet subband, the corresponding spatial ROI can be particularly large. Using the default parameter of JPEG 2000 as an example, a default code block of size 64×64 at the top resolution level of a default 5-level wavelet transform results in a spatial ROI of size 2048×2048. Unfortunately, this is too large for most application sceneries. Another shortcoming of the bitstream multiplexing scheme of JPEG 2000 is that its code block has to be independently encoded and decoded. Consequently, any existing dependencies among the neighboring code blocks, and across resolutions, are not considered by JPEG 2000, thereby reducing compression efficiency.
Consequently, what is needed is a system and method for encoding bitstreams without the need to use a demultiplexing aide in the encoded bitstream while maintaining the same flexible access of the compressed bitstream. Further, dependencies among coefficient blocks in this system and method should be considered in encoding the bitstreams, so as to improve overall compression efficiency.